﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharpDemos
{
    class NullableTypes
    {
        internal void BoxingUnboxingForNullableTypes()
        {
            //int? = int?
            int? nullable = 5;

            object boxed = nullable;
            Console.WriteLine(boxed.GetType());

            int normal = (int)boxed;
            Console.WriteLine(normal);

            nullable = (int?)boxed;
            Console.WriteLine(nullable);

            nullable = new int?();
            boxed = nullable;

            Console.WriteLine(boxed==null);

            nullable = (int?)boxed;
            Console.WriteLine(nullable.HasValue);

            Console.WriteLine(Nullable.Compare<int>(1, 1)); 


        }
    }
}
